package com.three;

import com.fast.dev.frame.utils.SPUtils;
import com.sina.weibo.sdk.auth.Oauth2AccessToken;

/**
 * 说明：该类定义了微博授权时所需要的参数。
 * <p/>
 * 作者：fanly
 * <p/>
 * 时间：2016/3/4 14:31
 * <p/>
 * 版本：verson 1.0
 */
public class AccessTokenKeeper {
    private static final String PREFERENCES_NAME = "com_weibo_sdk_android";

    private static final String KEY_UID           = "uid";
    private static final String KEY_ACCESS_TOKEN  = "access_token";
    private static final String KEY_EXPIRES_IN    = "expires_in";
    private static final String KEY_REFRESH_TOKEN    = "refresh_token";
    private static SPUtils sp = SPUtils.getInstance(PREFERENCES_NAME);

    /**
     * 保存 Token 对象到 SharedPreferences。
     *
     * @param token   Token 对象
     */
    public static void writeAccessToken(Oauth2AccessToken token) {
        sp.write(KEY_UID, token.getUid());
        sp.write(KEY_ACCESS_TOKEN, token.getToken());
        sp.write(KEY_REFRESH_TOKEN, token.getRefreshToken());
        sp.write(KEY_EXPIRES_IN, token.getExpiresTime());
    }

    /**
     * 从 SharedPreferences 读取 Token 信息。
     *
     * @return 返回 Token 对象
     */
    public static Oauth2AccessToken readAccessToken() {
        Oauth2AccessToken token = new Oauth2AccessToken();
        token.setUid(sp.readString(KEY_UID, ""));
        token.setToken(sp.readString(KEY_ACCESS_TOKEN, ""));
        token.setRefreshToken(sp.readString(KEY_REFRESH_TOKEN, ""));
        token.setExpiresTime(sp.readLong(KEY_EXPIRES_IN, 0));
        return token;
    }

    /**
     * 清空 SharedPreferences 中 Token信息。
     */
    public static void clear() {
        sp.clear();
    }
}